Embodiments of the present invention relate generally to methods and systems for searching for elements of a document and more particularly to searching for elements of a document based on an order priority of attributes of a query expression.
The Document Object Model (DOM) is a well-known convention for representing and interacting with documents such as HyperText Markup Language (HTML) and eXtensible Markup Language (XML) documents. The DOM provides conventions for addressing and manipulating “elements,” e.g., buttons, links, etc., and other objects within the document independent of platforms or languages.
The XML Path Language (XPath), is a query language for selecting nodes from an XML document. As such, XPath provides a way to search for an element in a DOM tree. For example, since HTML pages can be implemented as a DOM document, it is natural to assume that XPath is a good tool for finding objects inside such an HTML page.
However, XPath does not provide many, if any, operators to help find objects in a DOM document where the attributes might change. Furthermore, test tools that may utilize XPath expressions to search a DOM document use a waterfall or “fallback attribute” approach to finding elements in the document. With a waterfall approach, if an element cannot be found by one or more attributes, additional attributes are tried instead. However, once an attribute is matched, that object is considered to be a match for the XPath expression, even if additional or other attributes do not match. As a result, objects with similar attributes are often mistaken for each other and misidentified by such searches. Hence, there is a need for improved methods and systems for searching for elements of a document.